package dto

import "time"

// 后台成员日志记录参数
type AdminMemberLogRecordParam struct {
	Id              uint64    `json:"id"`
	AuthKey         string    `json:"auth_key"`
	Url             string    `json:"url"`
	Method          string    `json:"method"`
	Ip              string    `json:"ip"`
	CreatedAt       string    `json:"created_at"`
	UserAgent       string    `json:"user_agent"`
	RequestParams   string    `json:"request_params"`
	MemberId        uint64    `json:"member_id"`        // 操作成员id
	DataId          string    `json:"data_id"`          // 操作数据id
	Desc            string    `json:"desc"`             // 操作描述
	ResponseContent string    `json:"response_content"` // 响应内容
	Latency         uint64    `json:"latency"`          // 耗时（单位：ms）
	StartTime       time.Time `json:"-"`                // 开始时间（用于计算耗时）
}

// 后台成员日志列表过滤表单条件参数结构体
type AdminMemberLogPageListFilterFormParam struct {
	TimeRange  *AdminMemberLogPageListFilterTimeRange `json:"timeRange"`
	MemberIds  []uint64                               `json:"memberIds"`
	DataId     string                                 `json:"dataId"`
	IpProvince any                                    `json:"ipProvince"`
}

// 后台成员日志列表过滤表单时间范围条件参数结构体
type AdminMemberLogPageListFilterTimeRange struct {
	Start string `json:"start"`
	End   string `json:"end"`
}

// 后台成员日志列表响应结构体
type AdminMemberLogPageListItemResponse struct {
	Id              uint64 `json:"id"`
	CreatedAt       string `json:"created_at"`
	UrlInfo         string `json:"url_info"`
	Desc            string `json:"desc"`
	MemberName      string `json:"member_name"`
	DataId          string `json:"data_id"`
	RequestParams   string `json:"request_params"`
	ResponseContent string `json:"response_content"`
	IpInfo          string `json:"ip_info"`
	DeviceInfo      string `json:"device_info"`
	LatencyDesc     string `json:"latency_desc"` // 耗时描述（毫秒）
}
